Copyright ゥ 1997 Charles E. Groom. Sprite Animation Toolkit 2.3 by Ingemar Ragnemalm. All Rights Reserved.
E-mail comments, questions, and feedback to ceg@condor.swarthmore.edu
Visit the Spiked web page at http://www.sccs.swarthmore.edu/~ceg/spiked2/
This document is divided into the following sections:
・ About Use, and Legalities:
・ Requirements
・ Game Play
・Items
・ Controls and Navigation
・ Physics
・ Customizing the Settings
・ About the Development
・ A Plea
About Use, and Legalities:
Spiked is freeware. You may copy and/or distribute this software as you like, as long as this "About Spiked" document is included, but you may not distribute modified copies and you may not charge a fee for the software or the distribution except by written permission of Charles E. Groom.
The program is delivered "as is". Charles Groom doesnユt take any responsibility for damage, loss of data etc. that may occur from using it. Charles Groom provides no warranty of any kind, expressed or implied, concerning this software, including but not limited to fitness for a particular purpose. Charles Groom shall not be liable for any damages of any kind resulting from the use of this software.
Requirements:
・ 640x480 or larger 256 color display.
・ 68030 or better processor
・ 4 MB RAM Available
・ The Spiked 2.0 folder must contain the files メSpiked 2.0,モ メspiked.dat,モ メspiked.prefs,モ メSpiked Constants,モ and this file, メAbout Spiked.モ
Game Play
Spiked 2.0 is a two-player arcade game of cunning, physics, and brute force. Each player pilots a ship (one green, the other red). The game follows your typical gladiator paradigm: the one who walks away alive, wins. Thus, it is imperative to eliminate oneユs opponent.
The only way to die is to have your ship punctured by the horrible, nasty spike that floats around the screen (hence the name of the game, eh?). Anything that touches the spike blows up. Thus, to kill your opponent, you must somehow batter him/her into the spike.
The game plays in a straightforward fashion. The players, the spike, and other items are dumped into a closed (no screen wrapping!) arena. Everything in the arena can interact with everything else according to the laws of physics. If you bump into your opponent, he/she WILL fly backwards. Even the spike can be made to move, if you shove it hard enough. Of course, it has 200 times the mass of a player, so it can take a while to build up its momentum. A simple strategy would be to get your opponent between you and the spike, and then you accelerate towards your opponent and shove him/her into the spike. Unfortunately, your clever opponent will probably just move and you will find yourself kissing the spike, which can be bad for your health. So, do be careful about how you plot the undoing of your opponent.
To make life more interesting, there are lots of other things the float about the arena. Rocks are the most obvious. They are massive, big, and basically just get in the way. You can ram them to move them. Once in a while, a rift in space will open and deposit either a new rock or a gift.
A GIFT!??! You may ask. Gifts are what make Spiked interesting. You see, these little packets ヤo goodness just float around, waiting to be picked up before they either blow up or are pushed off the edge of the screen. Inside the gift a player will find a useful item which can be used to either attack their opponent or get them out of a scrape. (Well, the life gift canユt be used, but thatユs beside the point.)
The Items:
・ Bullets. Each ship is equipped with a small cannon that shoots bullets a short distance. You have infinite bullets, but all they do is push things out of the way. You can use a few bullets to destroy rocks and also to destroy gifts, such as the gift your opponent almost picked up.
・ Cannonball. This item is really cool. It moves very quickly and shoves things aside. Try blasting your opponent into a spike with one of these! Cannonballs are also a great way to eliminate annoying rocks.
・ Twister. This nasty item prevents whatever object it hits from accelerating itself. Thus, if you hit your opponent with a twister, a field of energy will form around them that clogs their engines. Take advantage of this weakness and gently nudge them into a spike. They are completely helpless!
・ Gravitron. Be careful with this toy. You shoot forth a tremendous メlassoモ that drags whatever it hits towards the player who shot it. This can be really cool if you attach the gravitron to your opponent so that they are dragged, helpless, into a spike. Of course, if you attach a gravitron to a spike, then the spike will start chasing you and you will most likely die. So, be careful!
・ Speeder. You donユt shoot a speeder, you use it. You rocket forward in whatever direction you are pointed. Speeders provide a useful means of escape.
Your ship can store one of each item. When you use an item, you use that item up (except for bullets, which are infinite). You can cycle through your items to load your next item. Games are won and lost through the careful use of items.
Controls and Navigation:
At any time, you can quit the game by using the "File" menu or pressing command + q. If you are in the middle of a match and wish the end the match, you can choose "End Game" from the "File" menu, or press command + e.
Each player has five controls: turn left, turn right, apply thrust, use item, and cycle through items. You can go to the メPrefsモ screen to customize these settings, which are then stored in the メspiked.prefsモ file. The default settings are:
Green player:
Left: a
Right: d
Thrust: w
Use Item: s
Change Item: q
Red player:
Left: j
Right: l
Thrust: i
Use Item: k
Change Item: u
Physics:
It can be enlightening to understand the rules of physics in the Spiked world.
1) Every item is treated as a circular disk.
2) No two items may exist in the same place at the same time.
3) Should two items try to coexist in the same location, then they must interact and either collide, or one will blow up. Collisions follow the rules of physics, and thus take into account the masses and velocities of the two objects.
4) All collisions are inelastic -- no energy is lost in a collision.
5) When a player applies thrust, they are accelerating in the direction opposite their engines.
6) Each object has a maximum speed limit and a preferred speed limit. You shouldnユt be aware of this too often, but I decided to apply these rules to prevent game play from degenerating into impossible-to-control pinball situations. You will notice this rule in effect when a player accelerates in a line for a while and gets going really fast, but when they stop applying thrust they slow down to their preferred speed limit.
7) Whenever a player dies, the spikeユs speed is set to zero. This looks strange, but it makes the games more stable since players donユt have to die from runaway spikes more than once.
8) The rate at which rifts open is inversely proportional the number of sprites on screen. So, if you want more gifts, blow up some rocks and clean up the screen.
Customizing the Settings:
AT YOUR OWN PERIL you may change the basic physical constants that determine how different objects interact with each other. These constants include objectsユ masses, maximum velocities, game speed, and the rates at which rifts will open. Open the file メSpiked Constantsモ with any text editor, read the comments at the bottom, and change the numbers accordingly. Please donユt distribute copies of Spiked with your modified constants settings!
About Spiked Development:
Spiked v1.0 was my first game. I was -- and still am -- proud of the fact that I taught myself to program through developing that game. However, it has many flaws. For two years or so, I ignored Spiked and turned my focus on bigger and more complex projects. This last spring, my Computer Science 35 class at Swarthmore College (Lisa Meeden, prof) required the final project of writing a large program using C++. So, I decided to re-make Spiked in the way that Iユd originally envisioned it. How much resemblance is there between this version and the previous version? Well, the spike idea is the same. Thatユs about it.
I wrote Spiked 2.0 in the most abstract fashion possible. I implemented a true OOP scheme for sprite creation and management, wrote my own event processor classes, and made the physics as accurate as possible. This was done so that I could use this code in future projects. The game is programmed in C++ compiled by Metrowerks CodeWarrior 9.0ェ. I relied on Ingemar Ragnemalmユs Sprite Animation Toolkit to handle the nitty-gritty sprite drawing routines, and Matt Slotユs Gamma Fade Utility to fade the screen in and out.
I spent a lot of time designing, drawing, and rendering the graphics. Everything was created using Adobe Photoshop 3.0ェ and Specular Infini-Dェ.
It is tricky to program on a Macintosh. I often had to look at other peopleユs source code to understand how to interact with the OS in a way that wouldnユt kill me. Thus, I think it is only fair that I offer most of my source code for public perusal. You can find it on the Spiked web site,
http://www.sccs.swarthmore.edu/~ceg/spiked2/
All this programming was powered by caffeine, that most glorious of chemicals. I ingested a few hundred cups of coffee and liters upon countless liters of Mountain Dew. In addition, my programming sidekick, Josie the Pet Rat, was with me the entire time and offered invaluable moral support. Thanks, Josie!
In addition, I would like to thank all my beta testers who offered their support and ideas. Josh, Scott, Fafa, Nati, Wayne, Greg, Tannia, Daniel, and Cherie, thank you!
A Plea
I distributed Spiked 2.0 as freeware because I believe in free fun. However, I am your typical starving college student, and writing these programs costs money in terms of hours not spent working, coffee, and Mountain Dew (glorious nuclear yellow drink of life!). Please pander to my ego by e-mailing me comments (ceg@condor.swarthmore.edu). Even better yet, help subsidize future programs by sending a small contribution to this poor student.